interface中文翻譯叫介面
、中國稱呼為接口
,
它是一組 method signatures、也就是一組方法,
裡面定義了還沒有被實作的方法,直接看實例比較清楚~
宣告方式如下:
type 介面名稱 interface {
方法1
方法2
...
}
type geometry interface {
area() float64
}
type circle struct {
radius float64
}
geometry interface
的方法area() float64
func (c circle) area() float64 {
return math.Pi * c.radius * c.radius
}
measure
接收任何func measure(g geometry) {
fmt.Println(g)
fmt.Println(g.area())
}
circle物件
,並將它傳入通用函式measure
之中,完成程式如下:package main
import (
"fmt"
"math"
)
type geometry interface {
area() float64
}
type circle struct {
radius float64
}
func (c circle) area() float64 {
return math.Pi * c.radius * c.radius
}
func measure(g geometry) {
fmt.Println(g)
fmt.Println(g.area())
}
func main() {
c := circle{radius: 5}
measure(c)
}
輸出結果如下:
{5}
78.53981633974483
對於interface 我並沒有實戰的經驗,
學習的過程中對這的概念真的很抽象,
不過據我的理解,結構變數的集合、介面式方法的集合
假設有一個名為人的物件
結構:將人的姓名、性別、身高......等變數整合再一起,
介面:將人的行為(走路、說話、吃飯......)方法整合再一起,
如果沒有整合也是可以使用,
但透過上述方法就能有效管理程式架構,
不然哪天在使用程式中尋找走路
的方法就要搜尋半天XDD
以上是我的學習心得~
如有錯誤敬請指教~~